package com.zhangxu.microservice.auth.biz.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhangxu.microservice.auth.biz.dto.CreateSystemDTO;
import com.zhangxu.microservice.auth.biz.dto.SystemDTO;
import com.zhangxu.microservice.auth.biz.dto.UpdateSystemDTO;
import com.zhangxu.microservice.auth.dao.condition.SystemCondition;

/**
 * 系统管理服务接口
 */
public interface SystemService {

    /**
     * 创建系统
     *
     * @param createSystemDTO 创建系统参数
     * @return 系统ID
     */
    Long createSystem(CreateSystemDTO createSystemDTO);

    /**
     * 更新系统
     *
     * @param updateSystemDTO 更新系统参数
     */
    void updateSystem(UpdateSystemDTO updateSystemDTO);

    /**
     * 删除系统
     *
     * @param systemId 系统ID
     */
    void deleteSystem(Long systemId);

    /**
     * 启用系统
     *
     * @param systemId 系统ID
     */
    void enableSystem(Long systemId);

    /**
     * 禁用系统
     *
     * @param systemId 系统ID
     */
    void disableSystem(Long systemId);

    /**
     * 根据ID获取系统详情
     *
     * @param systemId 系统ID
     * @return 系统详情
     */
    SystemDTO getSystemById(Long systemId);

    /**
     * 根据系统编码获取系统详情
     *
     * @param systemCode 系统编码
     * @return 系统详情
     */
    SystemDTO getSystemByCode(String systemCode);

    /**
     * 分页查询系统列表
     *
     * @param condition 查询条件
     * @return 系统分页信息
     */
    IPage<SystemDTO> systemPage(SystemCondition condition);
}